package com.sdy.dataexchange.web.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sdy.dataexchange.biz.model.ExDbDict;
import com.sdy.dataexchange.meta.service.MetadataClassifyService;
import com.sdy.dataexchange.meta.model.MetadataModel;
import com.sdy.common.model.Response;
import com.sdy.dataexchange.meta.service.MetadataModelService;
import com.sdy.dataexchange.meta.service.MysqlTableService;
import com.sdy.dataexchange.meta.job.MetadataTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.sdy.mvc.controller.BaseController;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wyy
 * @since 2019-10-25
 */
@Slf4j
@RestController
@RequestMapping("/metadataModel")
public class MetadataModelController extends BaseController {
    @Autowired
    private MetadataModelService metadataModelService;
    @Autowired
    private MysqlTableService mysqlTableService;
    @Autowired
    private MetadataClassifyService metadataClassifyService;
    @Autowired
    private MetadataTask metadataTask;

@GetMapping("/getTable")
@ResponseBody
public Response queryMySqlTab(Integer dbId, Page<MetadataModel> page){
    List<ExDbDict> exDbDicts = metadataClassifyService.queryDb(114);
//    Integer integer = metadataModelService.queryDbMetadataModel(1, exDbDicts.get(0));
//    List<MetadataModel> list = metadataModelService.queryDbMetadataModel(1, exDbDicts.get(0),page);
    List<MetadataModel> models  = metadataModelService.queryByDbIdMod(exDbDicts.get(0).getDbId());
    return Response.success(new Page<MetadataModel>(page.getCurrent(), page.getSize(), models.size()).setRecords(models));
}

    @GetMapping("/getTest")
    @ResponseBody
    public void ss () throws InstantiationException, IllegalAccessException {
//        metadataTask.modTask();
        metadataTask.allTabErrorDispose();
        System.out.println("sssssssssssss");
    }

//    /**
//     * 查询单条数据
//     * @param id 主键
//     * @return
//     * @throws Exception
//     */
//    @GetMapping("/get")
//    public Response get(Integer id) {
//        return Response.success(metadataModelService.getById(id));
//    }
//
//    /**
//     * 分页数据
//     * @param request
//     * @param page [current, size]
//     * @return
//     */
//    @GetMapping("/pageData")
//    public Response pageData(HttpServletRequest request, Page<MetadataModel> page) {
//        QueryWrapper<MetadataModel> wrapper = new QueryWrapper<>();
//
//        String id = request.getParameter("id");
//        wrapper.eq(StringUtil.isNotBlank(id), "id", id);
//
//        String key = request.getParameter("key");
//        wrapper.eq(StringUtil.isNotBlank(key), "id", key);
//
//        String createTime = request.getParameter("createTime");
//        if (StringUtil.isNotBlank(createTime)) {
//            wrapper.between("create_time",
//                DateUtil.getDate(createTime + " 00:00:00", DateUtil.DATETIME_FORMAT),
//                DateUtil.getDate(createTime + " 23:59:59", DateUtil.DATETIME_FORMAT));
//        }
//
//        String createTimeRange0 = request.getParameter("createTimeRange[0]");
//        String createTimeRange1 = request.getParameter("createTimeRange[1]");
//        if (StringUtil.isNotBlank(createTimeRange0) && StringUtil.isNotBlank(createTimeRange1)) {
//            wrapper.between("create_time",
//                DateUtil.getDate(createTimeRange0, DateUtil.DATETIME_FORMAT),
//                DateUtil.getDate(createTimeRange1, DateUtil.DATETIME_FORMAT));
//        }
//
//        wrapper.orderByDesc("id");
//
//        IPage<MetadataModel> result = metadataModelService.page(page, wrapper);
//        return Response.success(result);
//    }
//
//    /**
//     * 保存数据
//     * @param
//     * @return
//     */
//    @PostMapping("/save")
//    public Response save(@RequestBody MetadataModel metadataModel) {
//        return Response.success(metadataModelService.save(metadataModel));
//    }
//
//    /**
//     * 更新数据
//     * @param
//     * @return
//     */
//    @PostMapping("/update")
//    public Response update(@RequestBody MetadataModel metadataModel) {
//        return Response.success(metadataModelService.updateById(metadataModel));
//    }
//
//    /**
//     * 删除数据
//     * @param id 主键
//     * @return
//     */
//    @GetMapping("/delete")
//    public Response delete(Integer id) {
//        return Response.success(metadataModelService.removeById(id));
//    }
}
